package com.molichuxing.services.exception;

import java.util.HashMap;
import java.util.Map;

/**
 * @prouect_name: order-service
 * @class_name: ${CLASS_NAME}
 * @description: ${DESCRIPTION}
 * @author: 林亿建
 * @create_date: 2018年12月27日
 * @modify_date: 2018年12月27日
 **/
public enum VehicleExceptionCodeEnum {
    /**
     * 数据不存在
     */
    NOT_EXIST(90401, "数据不存在"),
    /**
     * 参数不能为空
     */
    NOT_EMPTY(90402, "参数不能为空"),
    /**
     * 车辆已上牌
     */
    ALREADY_LICENCE_PALTE(90403, "车辆已上牌"),
    /**
     * 车辆已入库
     */
    IN_STOCK(90405, "车辆已入库"),
    /**
     * 车辆未入库
     */
    NOT_IN_STOCK(90406, "车辆未入库"),

    /**
     * 车辆未上牌
     */
    NOT_LICENCE_PLATE(90407, "车辆未上牌"),

    /**
     * 年检到期日错误
     */
    YEARLY_INSPECT_ERROR(90408, "新年检有效期时间要大于当前有效期时间"),

    /**
     * 车辆数据不存在
     */
    CAR_NOT_EXIST(90410, "车辆数据不存在"),

    /**
     * 车牌重复
     */
	LICENSE_PLATE_REPET(90409, "车牌重复"),

	/**
	 * 车辆正在租赁中
	 */
	CAR_RENTED(90501, "抱歉，当前车辆正在租赁中，无法继续办理业务"),

	/**
	 * 车辆不可租
	 */
	CAR_NOT_RENT(90502, "抱歉，当前车辆不可租，无法继续办理业务"),

    /**
     * 车牌不合法
     */
    CAR_LICENCE_PLATE_ERROR(90503, "车牌不合法");

    final static private Map<Integer, VehicleExceptionCodeEnum> MAP = new HashMap<Integer, VehicleExceptionCodeEnum>() {
        private static final long serialVersionUID = -8414553247670306999L;
        {
            VehicleExceptionCodeEnum[] enums = VehicleExceptionCodeEnum.values();
            for (VehicleExceptionCodeEnum VehicleExceptionCodeEnum : enums) {
                put(VehicleExceptionCodeEnum.getCode(), VehicleExceptionCodeEnum);
            }
        }
    };

    public static VehicleExceptionCodeEnum getEnum(Integer code) {
        return MAP.get(code);
    }

    public static String getEnumDesc(Integer code) {
        VehicleExceptionCodeEnum VehicleExceptionCodeEnum = MAP.get(code);
        if (VehicleExceptionCodeEnum != null) {
            return VehicleExceptionCodeEnum.getMessage();
        }
        return "";
    }

    private Integer code;

    private String message;

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    private VehicleExceptionCodeEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }
}

